var mysql = require('mysql');

// 创建一个连接池，我们每次要发送 sql语句给mysql server都通过这个连接池来获得连接对象;
// 连接对象的有效性就有这个池来负责管理;
// 避免mysql在一段时间后，没有数据通讯的情况下会自动关闭连接通道；
var conn_pool = mysql.createPool({
    host: "127.0.0.1",          // 数据库服务器的IP地址
	port: 3307,                 // my.cnf指定了端口，默认的mysql的端口是3306,
	database: "my_database",    // 要连接的数据库
	user: "root",
	password: "123456",
})


// callback 1: err, 2, rows, 3, 每个字段的说明
// 异步,执行完后腰等回掉，不是马上就有结果。
// 异步的mysql的操作能投，提升我们的服务器的吞吐量；
function mysql_exex(sql, callback){
    conn_pool.getConnection(function(err, coon){
        if(err){
            if(callback){
                callback(err,null,null);
            }
            return;
        }

        // 发送数据库的cmd到mysql server;
		// query向服务器发送sql语句的命令，有返回的话，就会调用我们的回掉函数;
        coon.query(sql,function(sql_err,sql_result, sql_fields){
            if(sql_err){
                if(callback){
                    callback(sql_err,null,null);
                }
                return;
            }

            // sql_result返回给我们的结果
			// end 

			// fields_desic 每个字段的描述
			// end 
            if(callback){
                callback(null, sql_result,sql_fields);
            }
        })
    })
}

//插入一条数据
sql_cmd = "insert into uinfo (uname,upwd) values('xiaoming1','88')";
mysql_exex(sql_cmd,function(err,res, fields){
    console.log('=====插入1=======',err);
    if(err){
        return;
    }
    if(res){
        console.log('=====插入=======',res);
    }
})

//查询一条数据
var sql_cmd = "select * from uinfo limit 1";
mysql_exex(sql_cmd,function(err,res, fields){
    if(err){
        return;
    }
    if(res){
        console.log('=====查询=======',res);
        console.log('=====查询1=======',res[0].id);
    }
})

//修改所有的upwd 字段的值为777777
sql_cmd = "update  uinfo set upwd = '777777'";
mysql_exex(sql_cmd,function(err,res, fields){
    if(err){
        return;
    }
    if(res){
        console.log('=====修改=======',res);
    }
})

